{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第1章 统计学习方法概论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1．统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行分析与预测的一门学科。统计学习包括监督学习、非监督学习、半监督学习和强化学习。\n",
    "\n",
    "2．统计学习方法三要素——模型、策略、算法，对理解统计学习方法起到提纲挈领的作用。\n",
    "\n",
    "3．本书主要讨论监督学习，监督学习可以概括如下：从给定有限的训练数据出发， 假设数据是独立同分布的，而且假设模型属于某个假设空间，应用某一评价准则，从假设空间中选取一个最优的模型，使它对已给训练数据及未知测试数据在给定评价标准意义下有最准确的预测。\n",
    "\n",
    "4．统计学习中，进行模型选择或者说提高学习的泛化能力是一个重要问题。如果只考虑减少训练误差，就可能产生过拟合现象。模型选择的方法有正则化与交叉验证。学习方法泛化能力的分析是统计学习理论研究的重要课题。\n",
    "\n",
    "5．分类问题、标注问题和回归问题都是监督学习的重要问题。本书中介绍的统计学习方法包括感知机、$k$近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、EM算法、隐马尔可夫模型和条件随机场。这些方法是主要的分类、标注以及回归方法。它们又可以归类为生成方法与判别方法。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用最小二乘法拟和曲线\n",
    "\n",
    "高斯于1823年在误差$e_1,…,e_n$独立同分布的假定下,证明了最小二乘方法的一个最优性质: 在所有无偏的线性估计类中,最小二乘方法是其中方差最小的！\n",
    "对于数据$(x_i, y_i)   (i=1, 2, 3...,m)$\n",
    "\n",
    "拟合出函数$h(x)$\n",
    "\n",
    "有误差，即残差：$r_i=h(x_i)-y_i$\n",
    "\n",
    "此时$L2$范数(残差平方和)最小时，$h(x)$ 和 $y$ 相似度最高，更拟合"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "一般的$H(x)$为$n$次的多项式，$H(x)=w_0+w_1x+w_2x^2+...w_nx^n$\n",
    "\n",
    "$w(w_0,w_1,w_2,...,w_n)$为参数\n",
    "\n",
    "最小二乘法就是要找到一组 $w(w_0,w_1,w_2,...,w_n)$ ，使得$\\sum_{i=1}^n(h(x_i)-y_i)^2$ (残差平方和) 最小\n",
    "\n",
    "即，求 $min\\sum_{i=1}^n(h(x_i)-y_i)^2$\n",
    "\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "举例：我们用目标函数$y=sin2{\\pi}x$, 加上一个正态分布的噪音干扰，用多项式去拟合【例1.1 11页】"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import scipy as sp\n",
    "from scipy.optimize import leastsq\n",
    "import matplotlib.pyplot as plt\n",
    "# %matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* ps: numpy.poly1d([1,2,3])  生成  $1x^2+2x^1+3x^0$*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.68499368, 0.62721231, 0.36769649, 0.57428914, 0.66155548,\n",
       "       0.47780455])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# np.linspace(10, 20, 11)\n",
    "# array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20.])\n",
    "# np.random.normal(0, 0.1)\n",
    "\n",
    "np.random.rand(5 + 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 目标函数\n",
    "def real_func(x):\n",
    "    return np.sin(2*np.pi*x)\n",
    "\n",
    "# 多项式\n",
    "def fit_func(p, x):\n",
    "    f = np.poly1d(p)\n",
    "    return f(x)\n",
    "\n",
    "# 残差\n",
    "def residuals_func(p, x, y):\n",
    "    ret = fit_func(p, x) - y\n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 十个点\n",
    "x = np.linspace(0, 1, 10)\n",
    "x_points = np.linspace(0, 1, 1000)\n",
    "# 加上正态分布噪音的目标函数的值\n",
    "y_ = real_func(x)\n",
    "y = [np.random.normal(0, 0.1) + y1 for y1 in y_]\n",
    "\n",
    "\n",
    "def fitting(M=0):\n",
    "    \"\"\"\n",
    "    M    为 多项式的次数\n",
    "    \"\"\"\n",
    "    # 随机初始化多项式参数\n",
    "    p_init = np.random.rand(M + 1)\n",
    "    # 最小二乘法\n",
    "    p_lsq = leastsq(residuals_func, p_init, args=(x, y))\n",
    "    print('Fitting Parameters:', p_lsq[0])\n",
    "\n",
    "    # 可视化\n",
    "    plt.plot(x_points, real_func(x_points), label='real')\n",
    "    plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')\n",
    "    plt.plot(x, y, 'bo', label='noise')\n",
    "    plt.legend()\n",
    "    return p_lsq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 十个点\n",
    "x = np.linspace(0, 1, 10)\n",
    "x_points = np.linspace(0, 1, 1000)\n",
    "# 加上正态分布噪音的目标函数的值\n",
    "y_ = real_func(x)\n",
    "y = [np.random.normal(0, 0.1) + y1 for y1 in y_]\n",
    "\n",
    "\n",
    "def fitting(M=0):\n",
    "    \"\"\"\n",
    "    M    为 多项式的次数\n",
    "    \"\"\"\n",
    "    # 随机初始化多项式参数\n",
    "    p_init = np.random.rand(M + 1)\n",
    "    # 最小二乘法\n",
    "    p_lsq = leastsq(residuals_func, p_init, args=(x, y))\n",
    "    # print(p_lsq)\n",
    "    print('Fitting Parameters:', p_lsq[0])\n",
    "\n",
    "    # 可视化\n",
    "    plt.plot(x_points, real_func(x_points), label='real')\n",
    "    plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')\n",
    "    plt.plot(x, y, 'bo', label='noise')\n",
    "    plt.legend()\n",
    "    return p_lsq"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [0.03864789]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=0\n",
    "p_lsq_0 = fitting(M=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [-1.3660082   0.72165199]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=1\n",
    "p_lsq_1 = fitting(M=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=3 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [ 2.16836288e+01 -3.24093536e+01  1.08588316e+01 -1.07070623e-02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=3\n",
    "p_lsq_3 = fitting(M=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  M=5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [-5.90575509e+01  1.46271648e+02 -1.04380562e+02  1.14486913e+01\n",
      "  5.73086276e+00  4.02663197e-02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=5\n",
    "p_lsq_3 = fitting(M=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [ 9.86745801e+03 -4.73370830e+04  9.51162740e+04 -1.03872437e+05\n",
      "  6.68413110e+04 -2.56279603e+04  5.62833413e+03 -6.51525873e+02\n",
      "  3.56307519e+01  3.36197165e-02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=9\n",
    "p_lsq_9 = fitting(M=9)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当M=9时，多项式曲线通过了每个数据点，但是造成了过拟合"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正则化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果显示过拟合， 引入正则化项(regularizer)，降低过拟合\n",
    "\n",
    "$Q(x)=\\sum_{i=1}^n(h(x_i)-y_i)^2+\\lambda||w||^2$。\n",
    "\n",
    "回归问题中，损失函数是平方损失，正则化可以是参数向量的L2范数,也可以是L1范数。\n",
    "\n",
    "- L1: regularization\\*abs(p)\n",
    "\n",
    "- L2: 0.5 \\* regularization \\* np.square(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "regularization = 0.0001\n",
    "\n",
    "\n",
    "def residuals_func_regularization(p, x, y):\n",
    "    ret = fit_func(p, x) - y\n",
    "    ret = np.append(ret,\n",
    "                    np.sqrt(0.5 * regularization * np.square(p)))  # L2范数作为正则化项\n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 最小二乘法,加正则化项\n",
    "p_init = np.random.rand(9 + 1)\n",
    "p_lsq_regularization = leastsq(\n",
    "    residuals_func_regularization, p_init, args=(x, y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x296838d2d88>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x_points, real_func(x_points), label='real')\n",
    "plt.plot(x_points, fit_func(p_lsq_9[0], x_points), label='fitted curve')\n",
    "plt.plot(\n",
    "    x_points,\n",
    "    fit_func(p_lsq_regularization[0], x_points),\n",
    "    label='regularization')\n",
    "plt.plot(x, y, 'bo', label='noise')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "参考代码：https://github.com/wzyonggege/statistical-learning-method\n",
    "\n",
    "本文代码更新地址：https://github.com/fengdu78/lihang-code\n",
    "\n",
    "中文注释制作：机器学习初学者公众号：ID:ai-start-com\n",
    "\n",
    "配置环境：python 3.5+\n",
    "\n",
    "代码全部测试通过。\n",
    "![gongzhong](../gongzhong.jpg)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
